var express = require('express');
var wechatmodel = require('../model/wechat.js');
var Curd = require('../model/curd.js');
var moment = require('moment');
var async = require('async');
var tools = require('../utils/tools.js');
var router = express.Router();
//获取连续玩游戏的天数
router.post('/getDays', function(req, res, next) {
    var familyTimeGame = new Curd()(require('../model/zzFamilyTime.js'));
    var openid = req.body.openid;
    var finished = req.body.finished;
    var nickname = req.body.nickname;
    var info = {
        _openid: openid,
        nickname: nickname,
        finished: finished
    };
    async.waterfall([
        function(cb) {
            // 查表
            familyTimeGame.find({ _openid: openid }, function(err, result) {
                /**
                 * 判断表中是否有数据，如果有，则获取最后一条数据，如果没有则，判断是否完成游戏，然后直接保存这条数据
                 */
                if (result.length > 0) {
                    console.log("表中有数据，数据为" + result.length + "条");
                    //获取最后一条记录
                    var lastRecord = result[result.length-1];

                    //获取最后一条记录和本次游戏的相隔时间
                    var oldday = new Date(lastRecord.createTime);
                    var today = new Date();
                    var disparity = tools.getDisparity(today, oldday);
                    /**
                     * 判断本次游戏是否完成,如果完成，则判断最后一条数据是否完成；如果没完成，最后一次游戏和本次游戏的相隔时间
                     */
                    if (finished === 'true') {
                        console.log("游戏完成了");
                        /**
                         * 判断最后一条数据是否完成，如果没完成，直接设置连击数为1，如果完成了，判断两次游戏的相隔时间
                         */
                        if (lastRecord.finished === "true") {
                            console.log("上一条记录为完成状态");
                            /**
                             * 判断最后一次游戏和本次游戏的相隔时间，如果为0，则连击数不变，如果为1，则连击数加1，否则，则连击数为1
                             * @param  {[type]} disparity [description]
                             * @return {[type]}           [description]
                             */
                            if (disparity == 0) {
                                console.log("同一天玩的游戏");
                                info.relay = lastRecord.relay;
                                cb(null, info);
                            }
                            else if (disparity == 1) {
                                console.log('连续玩的游戏')
                                info.relay = lastRecord.relay + 1;
                                cb(null, info);
                            } else {
                                console.log('不是连续玩的');
                                info.relay = 1;
                                cb(null, info);
                            }
                        } else {
                            console.log("上一条记录为未完成状态");
                            info.relay = 1;
                            cb(null, info);
                        }
                    } else {
                        //判断最后一条记录和本次游戏的间隔时间，如果时间小于一天，relay不变，如果时间大于一天，relay为0
                        if (disparity < 1) {
                            info.relay = lastRecord.relay;
                        } else {
                            info.relay = 0;
                        }
                        cb(null, info);
                    }
                } else {
                    console.log("表中没数据");
                    /**
                     * 判断是否完成，如果完成，则设置relay为1，如果没完成，则设置relay为0
                     */
                    if (finished === 'true') {
                        info.relay = 1;
                        cb(null, info);
                    } else {
                        info.relay = 0;
                        cb(null, info);
                    }

                }
            });
        },
        function(user, cb) {
            familyTimeGame.save(user, function(err) {
                if (err) {
                    cb(new Error(err));
                } else {
                    cb(null, user);
                }
            });
        }
    ], function(err, result) {
        if (err) {
            console.log(err);
        }
        res.send(200, { message: result });
    });

});


module.exports = router;
